home *** CD-ROM | disk | FTP | other *** search
- SYSTEM cellular_automaton;
- CONST n = 79; (* number of elements *)
- m = 50; (* number of loops *)
- CONFIGURATION list [1..n];
- CONNECTION left: list[i] -> list[i-1] .right;
- right: list[i] -> list[i+1] .left;
-
- SCALAR i : integer;
- VECTOR val,l,r: boolean;
-
- PROCEDURE out;
- SCALAR a: ARRAY[1..n] OF boolean;
- j: integer;
- BEGIN
- store[*](val,a);
- FOR j:=1 TO n DO
- IF a[j] THEN write("X") ELSE write(" ") END;
- END;
- WriteLn
- END out;
-
- BEGIN
- PARALLEL (* Init *)
- val := false;
- ENDPARALLEL;
- PARALLEL [n div 2] (* middle *)
- val := true;
- ENDPARALLEL;
-
- FOR i:= 1 TO m DO
- out;
- PARALLEL
- propagate.left (val,l);
- propagate.right(val,r);
- val := l<>r;
- ENDPARALLEL;
- END;
- END cellular_automaton.
-
-